popover: Send key events only to the focus widget
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 26 Nov 2014 14:30:52 +0000 (15:30 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 26 Nov 2014 14:30:52 +0000 (15:30 +0100)
gtk_window_propagate_key_event() will run unstopped from the focus widget up to the
popover if GDK_EVENT_PROPAGATE was returned along the chain, resulting in infinite
recursion. This could be just triggered by pressing some modifier key on an entry...

gtk/gtkpopover.c

index 241eef5e1f17a7a90011af75b2660874e6c3cb90..38214c923907ad186717a1a02a4395f955a7e6b8 100644 (file)
@@ -1218,7 +1218,7 @@ gtk_popover_key_press (GtkWidget   *widget,
       focus = gtk_window_get_focus (GTK_WINDOW (toplevel));
 
       if (focus && gtk_widget_is_ancestor (focus, widget))
-        return gtk_window_propagate_key_event (GTK_WINDOW (toplevel), event);
+        return gtk_widget_event (focus, (GdkEvent*) event);
     }
 
   return GDK_EVENT_PROPAGATE;